#ifndef _SE_GUID_
#define _SE_GUID_

#include "Core/Base.h"

namespace SE
{
	class GUID final
	{
	private:
		U64 mGUID;

	public:
		GUID();
		GUID(const U64 guid);

		operator U64() const { return mGUID; }
	};
} // !namespace SE

namespace std
{
	template<typename T>
	struct hash;

	template<>
	struct hash<SE::GUID>
	{
		SE::U64 operator()(const SE::GUID& guid) const
		{
			return (SE::U64)guid;
		}
	};
} // !namespace std

#endif // !_SE_GUID_